package org.dromara.business.domain.vo;

import java.util.Date;

import org.dromara.business.domain.UserInfoWeb;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.mybatis.core.vo.BaseVo;
import org.dromara.common.translation.annotation.Translation;
import org.dromara.common.translation.constant.TransConstant;
import org.dromara.system.domain.vo.SysUserVo;

import java.io.Serial;
import java.io.Serializable;


/**
 * 用户附加信息视图对象 t_user_info
 *
 * @author Hao Tong Xue
 * @date 2025-04-03
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = UserInfoWeb.class)
public class UserInfoWebVo extends BaseVo {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 用户信息 ID
     */
    @ExcelProperty(value = "用户信息 ID")
    private Long id;

    /**
     * 个性签名
     */
    @ExcelProperty(value = "个性签名")
    private String signature;

    /**
     * 当前硬币余额
     */
    @ExcelProperty(value = "当前硬币余额")
    private Long balance;

    /**
     * 当前经验值
     */
    private Integer experience;

    /**
     * 生日
     */
    @ExcelProperty(value = "生日")
    private Date birthday;

    /**
     * 账号等级
     */
    @ExcelProperty(value = "账号等级")
    private Long userLevelId;

    /**
     * 备注
     */
    @ExcelProperty(value = "备注")
    private String remark;

    /**
     * 关注数量
     */
    private Integer followNum;

    /**
     * 粉丝数量
     */
    private Integer fansNum;

    /**
     * 用户信息 -> 扩展
     */
    private SysUserVo userVo;

    /**
     * 动态数量
     */
    private Long dynamicsNum;

    /**
     * 升级所需经验 - 剩余
     */
    private Integer upNextExperience;

    /**
     * 升级所需经验值
     */
    private Integer requiredExperience;

    /**
     * 账号当前等级
     */
    public Integer currentUserLevel;

    /**
     * 下一等级
     */
    public Integer nextUserLevel;

    /**
     * 等级进度
     */
    public Integer levelProgress;

    /**
     * 今日是否登录
     */
    public String todayLogin;

    /**
     * 注册天数
     */
    public Long registerDayCount;

    /**
     * 当前用户是否关注视频作者
     */
    private Boolean followUser;

    /**
     * 用户主页皮肤ID
     */
    private Long skinId;

    /**
     * 公告
     */
    private String notice;

}
